package com.hpq.common.annotation;

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.util.concurrent.TimeUnit;

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface RedissonLock {
    /**
     * 锁的前缀, 默认为空,可以自己指定
     * @return
     */
    String prefixKey() default "";

    /**
     *  锁的key,支持spring el表达式
     * @return
     */
    String key();

    /**
     *  等待锁的排队时间，默认不等待快速失败
     * @return
     */
    int waitTime() default -1;

    /**
     *  等待锁的时间单位，默认为毫秒
     * @return
     */
    TimeUnit timeUnit() default TimeUnit.MILLISECONDS;

}
